package ModelLayer;
import java.util.ArrayList;

/**
 * Vare typen 
 */
public class Vare
{
    private ArrayList<Eksemplar>eksemplarer;
    private int id;
    private static int nummer = 10000000;
    private String navn;
    private String beskrivelse;
    private double pris;
    private double rabat;

    public Vare(String navn, String beskrivelse, double pris, double rabat)
    {
        id = nummer;
        nummer++;
        this.navn = navn;
        this.beskrivelse = beskrivelse;
        this.pris = pris;
        this.rabat = rabat;
        eksemplarer = new ArrayList<Eksemplar>();
    }
    
    public Vare(Vare vare)
    {
        id = vare.id;
        navn = vare.navn;
        beskrivelse = vare.beskrivelse;
        pris = vare.pris;
        rabat = vare.rabat;
    }
    
    public String toString()
    {
        String string;
        string = "navn: " + navn + "\nbeskrivelse: " + beskrivelse + "\nid: " + id + "\npris: " + pris + "\nrabat: " + rabat;
        return string;
    }
    
    /**
     * Retunere true hvis der er eksemplarer
     * 
     * @return True hvis eksemplar listen er tom
     */
    public boolean hasEksemplar()
    {
        boolean has = true;
        if(eksemplarer.isEmpty())
        {
            has = false;
        }
        return has;
    }

    public String getNavn()
    {
        return navn;
    }

    public double getPris()
    {
        return pris;
    }

    public int getID()
    {
        return id;
    }

    public String getBeskrivelse()
    {
        return beskrivelse;
    }

    public double getRabat()
    {
        return rabat;
    }

    public void setNavn(String navn)
    {
        this.navn = navn;
    }

    public void setPris(double pris)
    {
        this.pris = pris;
    }

    public void setBeskrivelse(String beskrivelse)
    {
        this.beskrivelse = beskrivelse;
    }

    public void setRabat(double rabat)
    {
        this.rabat = rabat;
    }

    /**
     * Retunere en arrayliste med et antal eksemplarer i, som fjernes fra listen
     * 
     * @param antal Antallet af eksemplarer
     */
    public ArrayList getEksemplarer(int antal)
    {
        if(antal > eksemplarer.size())
        {
            antal = eksemplarer.size();
        }
        ArrayList<Eksemplar> eksemplar = new ArrayList<Eksemplar>();
        for(int i = 0; i < antal; i++)
        {
            eksemplar.add(eksemplarer.get(0));
            eksemplarer.remove(0);
        }
        return eksemplar;
    }

    /**
     * Tilføjer et antal eksemplarer
     * 
     * @param antal Antallet af eksemplarer der skal tilføjes
     */
    public void addEksemplarer(int antal)
    {
        for(int i = 0; i < antal; i++)
        {
            eksemplarer.add(new Eksemplar());
        }
    }
    
    /**
     * Giver vare en ny liste af eksemplarer, brugt ved tilføjelse til ordre
     * 
     * @param liste Listen af eksemplarer
     */
    public void setEksemplarer(ArrayList<Eksemplar> liste)
    {
        eksemplarer = liste;
        getAntal();
    }

    /**
     * Retunere antallet af eksemplarer
     */
    public int getAntal()
    {
        return eksemplarer.size();
    }
}